package acm;

import java.util.Scanner;

import util.Prime;

//阶乘的因子，如5！=2^3 * 3 * 5
public class DivisorOfFactorial {

	public static void main(String[] args) {
		// 首先找出小于100的素数
		int[] prime = new int[100];
		int[] index = new int[100]; // 表示各个素数的指数
		int count = 0; // 用于表示各个素数
		for (int i = 2; i <= 100; i++) {
			// 记录100以内的素数
			if (Prime.isPrime(i)) {
				prime[count++] = i;
			}
		}
		Scanner scanner = new Scanner(System.in);
		int number;
		while (scanner.hasNext()) {
			number = scanner.nextInt();
			int maxIndex = 0; // 最大素因子的下标
			for (int i = 1; i <= number; i++) {
				// 分别计算每个i的因子，由于是阶乘，只需要累加所有的指数即可
				// 比如4有2个2,2有1个2，所以应该是3
				// 注意不能直接修改i的值
				int temp = i;
				// j在素数表中遍历
				for (int j = 0; j < count; j++) {
					while (temp % prime[j] == 0) {
						temp /= prime[j];
						index[j]++; // 相应的指数加1
						// 更新最大素因子的下标
						if (j > maxIndex) {
							maxIndex = j;
						}
					}
				}
			}
			for (int i = 0; i <= maxIndex; i++) {
				System.out.print(index[i] + " ");
			}
		}
		scanner.close();
	}
}
